#-*- coding: utf-8 -*-

from Products.Five import zcml
from Products.Five import fiveconfigure
from Testing import ZopeTestCase as ztc
from Products.PloneTestCase import PloneTestCase as ptc
from Products.PloneTestCase.layer import onsetup

#Instalação de old style products
ztc.installProduct('CMFPublicator')
ztc.installProduct('windowZ')
ztc.installProduct('PloneHelpCenter')
ztc.installProduct('PloneKeywordManager')
ztc.installProduct('PlonePopoll')
ztc.installProduct('PloneFormGen')
ztc.installProduct('TemplateFields')
ztc.installProduct('PythonField')
ztc.installProduct('TALESField')
ztc.installProduct('CMFPlacefulWorkflow')


@onsetup
def setup_tchezope_politica():
    """Configura os produtos adicionais do Tchezope.
    O decorator @onsetup prorroga a execução deste código até a configuração
    da camada de testes do Plone
    """
    # Roda as configurações ZCML do pacote tchezope.politica.
    fiveconfigure.debug_mode = True
    import tchezope.politica
    zcml.load_config('configure.zcml', tchezope.politica)
    fiveconfigure.debug_mode = False
    # Devemos informar ao framework de testes que estes produtos
    # devem estar disponíveis. Isto só deve acontecer após rodar
    # as configurações ZCML.
    ztc.installPackage('tchezope.politica')
    ztc.installPackage('tchezope.tema')
# A ordem é importante: primeiro invocamos a função (@onsetup)
# que instala os produtos necessários para o pacote  Tchezope. 
# Depois deixamos PloneTestCase configurar este produtos na instalação.
setup_tchezope_politica()
ptc.setupPloneSite(products=['tchezope.politica'])
class TchezopePoliticaTestCase(ptc.PloneTestCase):
    """Esta é a classe base para todos os testes do pacote.
    Se necessário colocamos código comum aqui.
    """
